Addressable AssetとAutoya/AssetBundleモジュールの比較
概要
材料揃ったんで書く。
先に書いておくと、Addressable AssetはC#で書かれたモジュール、
Autiya/AssetBundleモジュールもC#で書かれたものなので、
どちらもコードをいじることで機能の追加や削除が可能になっている。
ここでは、デフォルトを比較する。
Addressableを生成してAssetに対するアンカーとして使う
Addressableにしかない。
AssetBundleの情報の集合をリストとして扱う
双方OK
リストのダウンロード -> 使いたいAssetを含んでいるAssetBundleを見つけてDL、キャッシュして展開、、など。
複数のAssetBundleリストを使う
Autoyaでは複数のリストを同時に扱うことができる。
機能リクエストはしておいたので、Addressableでも叶うかも。
アプリケーション動作中にAssetBundleのリストを更新する
AutoyaではAppの動作中に、サーバから新バージョンのAssetBundleリストを取得、更新することができる。
現在使用中のAssetを含んだAssetBundleが更新されたかどうか、などもサーバ主導でハンドリングを行える。
Addressableでは、起動時に一回だけリストを更新することができる。
AssetBundleのPreload
Preloadは、AssetBundleを展開することなく、DLだけを行う処理。
双方OK
Preloadの並列化
複数のPreloadを並列に行えるかどうか。
Autoyaでは並列数を指定して実行できる。
機能リクエストはしておいたので、Addressableでも叶うかも。
バージョンの付与
Autoyaではリリース済みのAssetBundleに対して、そのリストに特定のバージョン値をセットすることができる。
これで、例えばクライアントが今どんなバージョンのAssetを触っているか、とかが把握できる。
エラー処理
Autoyaでは、iOS/Androidなどのモバイルでの通信エラーやら何やらをメチャクチャ丁寧にハンドリングしている。
Addressableはデフォルトではそういうのなさそう(カスタマイズ前提)っぽいので、この辺は頑張って欲しい。
補足
Addressable Asset系のすごいところは、
・上記の機能は標準では入ってないけど、リスト作成(Addressableコンパイル) -> 起動時リスト取得 -> Assetの指定をAddressable Assetで行う
というフローが整っているところ。
特にフローの整理っぷりは素晴らしい。
いままではフローを実装するところから始めていたのが、このフローのどこに何載せよう、みたいな感じに簡略化できる。
Autoya/AssetBundleモジュールとほとんど同じフローなのも、俺的には良い。
もしこれが完成したら、自分はAutoya側のAssetBundleの機構をメンテしなくてよくなるのだ!!